package com.itbaizhan;

import java.util.Arrays;

//自定义一个简单的包装类（仅限于练习）
public class MyInteger {
    private final int value;//定义属性，再初始化
    //定义静态属性 数组
    private static MyInteger[] cache;//缓存[-128,127]之间的数字
    private static final int LOW = -128;
    private static final int HIGH = 127;
    //静态初始化，类被加载时就调用
    static {
        cache = new MyInteger[HIGH-LOW+1];//256
        for (int i=LOW;i<=HIGH;i++){
             cache[i-LOW] = new MyInteger(i);
        }
        //打印数组
        System.out.println(Arrays.toString(cache));
    }
    //初始化 value  用构造器
    public MyInteger(int value){
        this.value= value;
    }
    //将value的值传入来
    public static  MyInteger value0f(int value){
        return new MyInteger(value);
    }
    //重写toString  才可以打印数字
    @Override
    public String toString() {
        return value+""; //要加”“，否则报错
    }

    //把对象转为int类型
    public int intValue(){
        return value;
    }

    public static void main(String[] args) {
        MyInteger a = new MyInteger(10);
        MyInteger b =  MyInteger.value0f(100);//调用静态方法
        int c = b.intValue();
    }


}
